package groot.dozer.annotation;

import groot.dozer.Enum.TypeEnum;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 类映射注解
 *
 * @author Groot
 * @since 2018/11/6 16:14
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ClassMapping {

  /**
   *  要映射的类
   */
  Class<?> value();

  /**
   *  日期转换格式
   */
  String dateFormat() default "";

  /**
   *  是否映射null值
   */
  boolean mapNull() default true;

  /**
   *  映射类型-双向或单向
   */
  TypeEnum type() default TypeEnum.ONE_WAY;

  /**
   *  是否是源头类-双向映射时无需配置，单向时则需要注意
   */
  boolean isSource() default true;




}
